perm filename SETMAG[MUS,LCS] blob sn#269282 filedate 1977-03-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	<comment: type 'SETMAG nchns, srate'  
C00006 ENDMK
C⊗;
<comment: type 'SETMAG; nchns, srate'  ;
FUNCTION MAGERR(X);
	BEGIN  PRINT "IMPROPER INPUT.   ";  X←0;
	  print "Type number of channels and sample rate: ";
	  END;

FUNCTION ADJRATE; BEGIN
	IF SRATE < 6400 THEN BEGIN
	 	IF SRATE = 1 THEN SRATE ← 12800;
		IF SRATE = 2 THEN SRATE ← 25600;
		IF SRATE = 3 THEN SRATE ← 51200;
		IF SRATE = 4 THEN SRATE ← 102400;
		IF SRATE = 5 THEN SRATE ← 204800;
		IF SRATE <10 THEN SRATE ← 6400;
	 	IF SRATE <20 THEN SRATE ← 12800;
		IF SRATE <50 THEN SRATE ← 25600;
		IF SRATE <100 THEN SRATE ← 51200;
		IF SRATE <200 THEN SRATE ← 102400;
		IF SRATE <400 THEN SRATE ← 204800;
  	 COMMENT: YOU MAY TYPE 1 OR 12 FOR 12800, ETC.;
		END;  END;

Function SETMAG;
    begin
	VARIABLE X; X←0;
	WHILE X = 0 DO
		BEGIN   X←1; rdnum(nchns); rdnum(srate);
		IF NCHNS > 4  THEN  MAGERR(X);
		IF NCHNS = 3  THEN  MAGERR(X);
		IF NCHNS < 1  THEN  MAGERR(X);
		ADJRATE; 

		COMMENT: ONLY 6400, 12800, ETC. ARE ACCEPTED;
		IF INT(SRATE/6400+.1) ≠ SRATE/6400 THEN MAGERR(X);
		END;

	SPEED←INT(ALOG(SRATE/6400)/ALOG(2)+.1);  mag←512/srate;
	PRINT "NCHNS=",NCHNS,"  SRATE=",SRATE,"  SPEED=",SPEED;
    end;